package com.example.controller;

import com.example.entity.Result;
import com.example.entity.TemplateImage;
import com.example.service.TemplateImageService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParams;
import org.apache.logging.log4j.message.ReusableMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Api(value = "模板图片的管理", description = "模板图片的增删改查")
@RestController
@RequestMapping("/api/template-images")
public class TemplateImageController {

    private final TemplateImageService templateImageService;

    @Autowired
    public TemplateImageController(TemplateImageService templateImageService) {
        this.templateImageService = templateImageService;
    }

    @PostMapping
    public Result<Integer> saveTemplateImage(@RequestBody TemplateImage templateImage) {
        return Result.success(templateImageService.saveTemplateImage(templateImage));
    }

    @PutMapping("/{id}")
    public Result<Integer> updateTemplateImage(@PathVariable Long id, @RequestBody TemplateImage templateImage) {
        templateImage.setId(id);
        return Result.success(templateImageService.updateTemplateImage(templateImage));
    }

    @DeleteMapping("/{id}")
    public Result<Integer> deleteTemplateImage(@PathVariable Long id) {
        return Result.success(templateImageService.deleteTemplateImage(id));
    }

    @GetMapping("/{id}")
    public Result<TemplateImage> getTemplateImageById(@PathVariable Long id) {
        return Result.success(templateImageService.getTemplateImageById(id));
    }

    @GetMapping("/by-template/{templateId}")
    public Result<List<TemplateImage>> getTemplateImagesByTemplateId(@PathVariable Long templateId) {
        return Result.success(templateImageService.getTemplateImagesByTemplateId(templateId));
    }

    @GetMapping
    public Result<List<TemplateImage>> getAllTemplateImages() {
        return Result.success(templateImageService.getAllTemplateImages());
    }
}
